/*
 * Copyright (C) 2019 xuexiangjys(xuexiangjys@163.com)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

package com.xuexiang.tingcibei.base.db.entity;

import com.j256.ormlite.field.DatabaseField;
import com.j256.ormlite.table.DatabaseTable;

import java.util.Date;

/**
 * 单词管理
 *
 * @author zjh
 * @since 2024-12-04 22:57
 */
@DatabaseTable(tableName = "words")
public class Words {

    @DatabaseField(generatedId = true)
    private long Id;
    /**
     * 单词
     */
    @DatabaseField(unique = true)
    private String word;

    /**
     * 音标
     */
    @DatabaseField
    private String wordPhonetics;

    /**
     * 中文解析
     */
    @DatabaseField
    private String wordAnalysis;

    /**
     * 是否掌握 0未标记，1未掌握、2已掌握
     */
    @DatabaseField
    private Integer masterState;

    /**
     * 掌握标记次数
     */
    @DatabaseField
    private Integer masterNum;

    /**
     * 取消掌握次数
     */
    @DatabaseField
    private Integer cancelMasterNum;

    /**
     * 最新掌握标记时间
     */
    @DatabaseField
    private Date latestMasterTime;

    /**
     * 是否不懂 0未标记，1不懂、2已懂
     */
    @DatabaseField
    private Integer understandState;

    /**
     * 不懂标记次数
     */
    @DatabaseField
    private Integer understandStateNum;

    /**
     * 取消不懂次数
     */
    @DatabaseField
    private Integer cancelUnderstandStateNum;

    /**
     * 最新不懂标记时间
     */
    @DatabaseField
    private Date latestUnderstandTime;

    /**
     * 反向是否掌握
     */
    @DatabaseField
    private Boolean reverseMasterState;

    /**
     * 反向掌握标记次数
     */
    @DatabaseField
    private Integer reverseMasterNum;

    /**
     * 反向取消掌握次数
     */
    @DatabaseField
    private Integer reverseCancelMasterNum;

    /**
     * 反向最新掌握标记时间
     */
    @DatabaseField
    private Date reverseLatestMasterTime;

    /**
     * 反向是否不懂
     */
    @DatabaseField
    private Boolean reverseUnderstandState;

    /**
     * 反向不懂标记次数
     */
    @DatabaseField
    private Integer reverseUnderstandStateNum;

    /**
     * 反向取消不懂次数
     */
    @DatabaseField
    private Integer reverseCancelUnderstandStateNum;

    /**
     * 反向最新不懂标记时间
     */
    @DatabaseField
    private Date reverseLatestUnderstandTime;


    /**
     * 创建时间
     */
    @DatabaseField
    private Date createTime;

    /**
     * 创建人
     */
    @DatabaseField
    private String createUser;

    /**
     * 更新时间
     */
    @DatabaseField
    private Date updateTime;

    /**
     * 更新人
     */
    @DatabaseField
    private String updateUser;

    /**
     * 备注
     */
    @DatabaseField
    private String remark;

    public Words(String word, String wordAnalysis) {
        this.word = word;
        this.wordAnalysis = wordAnalysis;
    }

    public Words(String word, String wordPhonetics, String wordAnalysis, Integer masterState, Integer masterNum, Integer cancelMasterNum, Date latestMasterTime, Integer understandState, Integer understandStateNum, Integer cancelUnderstandStateNum, Date latestUnderstandTime, Boolean reverseMasterState, Integer reverseMasterNum, Integer reverseCancelMasterNum, Date reverseLatestMasterTime, Boolean reverseUnderstandState, Integer reverseUnderstandStateNum, Integer reverseCancelUnderstandStateNum, Date reverseLatestUnderstandTime, Date createTime, String createUser, Date updateTime, String updateUser, String remark) {
        this.word = word;
        this.wordPhonetics = wordPhonetics;
        this.wordAnalysis = wordAnalysis;
        this.masterState = masterState;
        this.masterNum = masterNum;
        this.cancelMasterNum = cancelMasterNum;
        this.latestMasterTime = latestMasterTime;
        this.understandState = understandState;
        this.understandStateNum = understandStateNum;
        this.cancelUnderstandStateNum = cancelUnderstandStateNum;
        this.latestUnderstandTime = latestUnderstandTime;
        this.reverseMasterState = reverseMasterState;
        this.reverseMasterNum = reverseMasterNum;
        this.reverseCancelMasterNum = reverseCancelMasterNum;
        this.reverseLatestMasterTime = reverseLatestMasterTime;
        this.reverseUnderstandState = reverseUnderstandState;
        this.reverseUnderstandStateNum = reverseUnderstandStateNum;
        this.reverseCancelUnderstandStateNum = reverseCancelUnderstandStateNum;
        this.reverseLatestUnderstandTime = reverseLatestUnderstandTime;
        this.createTime = createTime;
        this.createUser = createUser;
        this.updateTime = updateTime;
        this.updateUser = updateUser;
        this.remark = remark;
    }

    public Words() {
    }

    @Override
    public String toString() {
        return "Words{" +
                "Id=" + Id +
                ", word='" + word + '\'' +
                ", wordPhonetics='" + wordPhonetics + '\'' +
                ", wordAnalysis='" + wordAnalysis + '\'' +
                ", masterState=" + masterState +
                ", masterNum=" + masterNum +
                ", cancelMasterNum=" + cancelMasterNum +
                ", latestMasterTime=" + latestMasterTime +
                ", understandState=" + understandState +
                ", understandStateNum=" + understandStateNum +
                ", cancelUnderstandStateNum=" + cancelUnderstandStateNum +
                ", latestUnderstandTime=" + latestUnderstandTime +
                ", reverseMasterState=" + reverseMasterState +
                ", reverseMasterNum=" + reverseMasterNum +
                ", reverseCancelMasterNum=" + reverseCancelMasterNum +
                ", reverseLatestMasterTime=" + reverseLatestMasterTime +
                ", reverseUnderstandState=" + reverseUnderstandState +
                ", reverseUnderstandStateNum=" + reverseUnderstandStateNum +
                ", reverseCancelUnderstandStateNum=" + reverseCancelUnderstandStateNum +
                ", reverseLatestUnderstandTime=" + reverseLatestUnderstandTime +
                ", createTime='" + createTime + '\'' +
                ", createUser='" + createUser + '\'' +
                ", updateTime='" + updateTime + '\'' +
                ", updateUser='" + updateUser + '\'' +
                ", remark='" + remark + '\'' +
                '}';
    }

    public long getId() {
        return Id;
    }

    public void setId(long id) {
        Id = id;
    }

    public String getWord() {
        return word;
    }

    public void setWord(String word) {
        this.word = word;
    }

    public String getWordPhonetics() {
        return wordPhonetics;
    }

    public void setWordPhonetics(String wordPhonetics) {
        this.wordPhonetics = wordPhonetics;
    }

    public String getWordAnalysis() {
        return wordAnalysis;
    }

    public void setWordAnalysis(String wordAnalysis) {
        this.wordAnalysis = wordAnalysis;
    }

    public Integer getMasterState() {
        return masterState;
    }

    public void setMasterState(Integer masterState) {
        this.masterState = masterState;
    }

    public Integer getMasterNum() {
        return masterNum;
    }

    public void setMasterNum(Integer masterNum) {
        this.masterNum = masterNum;
    }

    public Integer getCancelMasterNum() {
        return cancelMasterNum;
    }

    public void setCancelMasterNum(Integer cancelMasterNum) {
        this.cancelMasterNum = cancelMasterNum;
    }

    public Date getLatestMasterTime() {
        return latestMasterTime;
    }

    public void setLatestMasterTime(Date latestMasterTime) {
        this.latestMasterTime = latestMasterTime;
    }

    public Integer getUnderstandState() {
        return understandState;
    }

    public void setUnderstandState(Integer understandState) {
        this.understandState = understandState;
    }

    public Integer getUnderstandStateNum() {
        return understandStateNum;
    }

    public void setUnderstandStateNum(Integer understandStateNum) {
        this.understandStateNum = understandStateNum;
    }

    public Integer getCancelUnderstandStateNum() {
        return cancelUnderstandStateNum;
    }

    public void setCancelUnderstandStateNum(Integer cancelUnderstandStateNum) {
        this.cancelUnderstandStateNum = cancelUnderstandStateNum;
    }

    public Date getLatestUnderstandTime() {
        return latestUnderstandTime;
    }

    public void setLatestUnderstandTime(Date latestUnderstandTime) {
        this.latestUnderstandTime = latestUnderstandTime;
    }

    public Boolean getReverseMasterState() {
        return reverseMasterState;
    }

    public void setReverseMasterState(Boolean reverseMasterState) {
        this.reverseMasterState = reverseMasterState;
    }

    public Integer getReverseMasterNum() {
        return reverseMasterNum;
    }

    public void setReverseMasterNum(Integer reverseMasterNum) {
        this.reverseMasterNum = reverseMasterNum;
    }

    public Integer getReverseCancelMasterNum() {
        return reverseCancelMasterNum;
    }

    public void setReverseCancelMasterNum(Integer reverseCancelMasterNum) {
        this.reverseCancelMasterNum = reverseCancelMasterNum;
    }

    public Date getReverseLatestMasterTime() {
        return reverseLatestMasterTime;
    }

    public void setReverseLatestMasterTime(Date reverseLatestMasterTime) {
        this.reverseLatestMasterTime = reverseLatestMasterTime;
    }

    public Boolean getReverseUnderstandState() {
        return reverseUnderstandState;
    }

    public void setReverseUnderstandState(Boolean reverseUnderstandState) {
        this.reverseUnderstandState = reverseUnderstandState;
    }

    public Integer getReverseUnderstandStateNum() {
        return reverseUnderstandStateNum;
    }

    public void setReverseUnderstandStateNum(Integer reverseUnderstandStateNum) {
        this.reverseUnderstandStateNum = reverseUnderstandStateNum;
    }

    public Integer getReverseCancelUnderstandStateNum() {
        return reverseCancelUnderstandStateNum;
    }

    public void setReverseCancelUnderstandStateNum(Integer reverseCancelUnderstandStateNum) {
        this.reverseCancelUnderstandStateNum = reverseCancelUnderstandStateNum;
    }

    public Date getReverseLatestUnderstandTime() {
        return reverseLatestUnderstandTime;
    }

    public void setReverseLatestUnderstandTime(Date reverseLatestUnderstandTime) {
        this.reverseLatestUnderstandTime = reverseLatestUnderstandTime;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCreateUser() {
        return createUser;
    }

    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getUpdateUser() {
        return updateUser;
    }

    public void setUpdateUser(String updateUser) {
        this.updateUser = updateUser;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }
}
